]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st/settings: Add :accent-color
authorAlice Mikhaylenko <alicem@gnome.org>
Tue, 21 Mar 2023 18:59:39 +0000 (22:59 +0400)
committerMarge Bot <marge-bot@gnome.org>
Thu, 20 Jun 2024 13:18:00 +0000 (13:18 +0000)
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2715>

meson.build
src/st/st-settings.c
src/st/st-settings.h

index 0b265ad922049e483038d19887f3cb45e3ef0a05..7ba28a3d837ff3f26e8ea7f550a15eb4a01db27e 100644 (file)
@@ -28,7 +28,7 @@ gjs_req = '>= 1.73.1'
 gtk_req = '>= 4.0'
 mutter_req = '>= 46.0'
 polkit_req = '>= 0.100'
-schemas_req = '>= 46.beta'
+schemas_req = '>= 47.alpha'
 systemd_req = '>= 246'
 ibus_req = '>= 1.5.19'
 gnome_desktop_req = '>= 40'
index 07e60abce7c698663e733df05c7305af6feb3e35..0101a00c7bf5a3d04f99a5210fcdca06b48fd8ad 100644 (file)
@@ -33,6 +33,7 @@
 #define KEY_DRAG_THRESHOLD        "drag-threshold"
 #define KEY_FONT_NAME             "font-name"
 #define KEY_COLOR_SCHEME          "color-scheme"
+#define KEY_ACCENT_COLOR          "accent-color"
 #define KEY_HIGH_CONTRAST         "high-contrast"
 #define KEY_GTK_ICON_THEME        "icon-theme"
 #define KEY_MAGNIFIER_ACTIVE      "screen-magnifier-enabled"
@@ -45,6 +46,7 @@ enum {
   PROP_DRAG_THRESHOLD,
   PROP_FONT_NAME,
   PROP_COLOR_SCHEME,
+  PROP_ACCENT_COLOR,
   PROP_HIGH_CONTRAST,
   PROP_GTK_ICON_THEME,
   PROP_MAGNIFIER_ACTIVE,
@@ -75,6 +77,7 @@ struct _StSettings
   gint drag_threshold;
   double slow_down_factor;
   StSystemColorScheme color_scheme;
+  StSystemAccentColor accent_color;
 };
 
 G_DEFINE_TYPE (StSettings, st_settings, G_TYPE_OBJECT)
@@ -192,6 +195,9 @@ st_settings_get_property (GObject    *object,
     case PROP_COLOR_SCHEME:
       g_value_set_enum (value, settings->color_scheme);
       break;
+    case PROP_ACCENT_COLOR:
+      g_value_set_enum (value, settings->accent_color);
+      break;
     case PROP_MAGNIFIER_ACTIVE:
       g_value_set_boolean (value, settings->magnifier_active);
       break;
@@ -294,6 +300,18 @@ st_settings_class_init (StSettingsClass *klass)
                                                 ST_SYSTEM_COLOR_SCHEME_DEFAULT,
                                                 ST_PARAM_READABLE);
 
+  /**
+   * StSettings:accent-color:
+   *
+   * The current accent color.
+   */
+  props[PROP_ACCENT_COLOR] = g_param_spec_enum ("accent-color",
+                                                "accent color",
+                                                "accent color",
+                                                ST_TYPE_SYSTEM_ACCENT_COLOR,
+                                                ST_SYSTEM_ACCENT_COLOR_BLUE,
+                                                ST_PARAM_READABLE);
+
   /**
    * StSettings:magnifier-active:
    *
@@ -364,6 +382,11 @@ on_interface_settings_changed (GSettings   *g_settings,
       g_object_notify_by_pspec (G_OBJECT (settings),
                                 props[PROP_COLOR_SCHEME]);
     }
+  else if (g_str_equal (key, KEY_ACCENT_COLOR))
+    {
+      settings->accent_color = g_settings_get_enum (g_settings, key);
+      g_object_notify_by_pspec (G_OBJECT (settings), props[PROP_ACCENT_COLOR]);
+    }
 }
 
 static void
@@ -447,6 +470,8 @@ st_settings_init (StSettings *settings)
                                                     KEY_GTK_ICON_THEME);
   settings->color_scheme = g_settings_get_enum (settings->interface_settings,
                                                 KEY_COLOR_SCHEME);
+  settings->accent_color = g_settings_get_enum (settings->interface_settings,
+                                                KEY_ACCENT_COLOR);
   settings->drag_threshold = g_settings_get_int (settings->mouse_settings,
                                                  KEY_DRAG_THRESHOLD);
   settings->magnifier_active = g_settings_get_boolean (settings->a11y_applications_settings,
index f12c4b5da06d74f2390a6888481b87637319045c..272a4ad39a3ada62236cfe0875105ed319055480 100644 (file)
@@ -35,6 +35,18 @@ typedef enum {
   ST_SYSTEM_COLOR_SCHEME_PREFER_LIGHT = G_DESKTOP_COLOR_SCHEME_PREFER_LIGHT,
 } StSystemColorScheme;
 
+typedef enum {
+  ST_SYSTEM_ACCENT_COLOR_BLUE = G_DESKTOP_ACCENT_COLOR_BLUE,
+  ST_SYSTEM_ACCENT_COLOR_TEAL = G_DESKTOP_ACCENT_COLOR_TEAL,
+  ST_SYSTEM_ACCENT_COLOR_GREEN = G_DESKTOP_ACCENT_COLOR_GREEN,
+  ST_SYSTEM_ACCENT_COLOR_YELLOW = G_DESKTOP_ACCENT_COLOR_YELLOW,
+  ST_SYSTEM_ACCENT_COLOR_ORANGE = G_DESKTOP_ACCENT_COLOR_ORANGE,
+  ST_SYSTEM_ACCENT_COLOR_RED = G_DESKTOP_ACCENT_COLOR_RED,
+  ST_SYSTEM_ACCENT_COLOR_PINK = G_DESKTOP_ACCENT_COLOR_PINK,
+  ST_SYSTEM_ACCENT_COLOR_PURPLE = G_DESKTOP_ACCENT_COLOR_PURPLE,
+  ST_SYSTEM_ACCENT_COLOR_SLATE = G_DESKTOP_ACCENT_COLOR_SLATE,
+} StSystemAccentColor;
+
 #define ST_TYPE_SETTINGS (st_settings_get_type ())
 G_DECLARE_FINAL_TYPE (StSettings, st_settings, ST, SETTINGS, GObject)